import Vue from 'vue'
import Vuex from 'vuex'
import user from './modules/user.js'
import createPersistedState from 'vuex-persistedstate'

Vue.use(Vuex)  //使用vuex 插件  use 方法是vue  转本用来挂载 是适用于vue的 插件的方法

export default new Vuex.Store({
  plugins: [
    // 数据持久化插件
    createPersistedState({
      storage: window.localStorage, //将数据缓存在 localStorage 中
      key: "abcvuex", //缓存的名字
      // reducer(v){
      //     return{
      //       test:v.test
      //     } 
      //     // 只缓存return 里面有的 不写这个方法 默认缓存所有
      // }
    })
  ],
  state: { // 用来存放数据/变量
    userName: "" //用户名
  },
  getters: {  // vuex 的计算属性

  },
  mutations: {  //这里用来定义方法 (必须是同步的) 并且规定只能通过这里修改state
    SET_USER(state,data){
      state.userName = "欢迎您 尊敬的："+data;
    }

  },
  actions: {  // 这里用来定义方法 (可以定义异步方法)

  },
  modules: {  //这里用来挂载模块
    user
  }
})
